import java.util.*;

/**
 * @author LKQ
 * @date 2022/6/6 23:01
 * @description 分析，假设字符串T在给定的字符串S中出现了k次，那么T的子串出现次数至少也是k，
 * 因此在所有满足条件且出现次数最多的字符串中，一定有一个长度恰好为minSize.
 */
public class Solution3 {
    public static void main(String[] args) {

    }
    public int maxFreq(String s, int maxLetters, int minSize, int maxSize) {
        Map<String, Integer> map = new HashMap<>();
        int ans = 0;
        for (int i = 0; i < s.length() - minSize + 1; i++) {
            String t = s.substring(i, i + minSize);
            if (check(t, maxLetters)) {
                map.put(t, map.getOrDefault(t, 0 ) + 1);
                if (map.get(t) > ans) {
                    ans = map.get(t);
                }
            }
        }
        return ans;
    }
    public boolean check(String s, int maxLetters) {
        Set<Integer> set = new HashSet<>();
        for (int i = 0; i < s.length(); i++) {
            set.add(s.charAt(i) - 'a');
            if (set.size() > maxLetters) {
                return false;
            }
        }
        return true;
    }
}
